const express = require('express')
const bodyParser = require('body-parser')
const userModel = require('./db')
const app = express()
app.listen('8080')

// 中间件注入 接受处理post请求
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())

// 添加用户接口
app.post('/v1/api/users', async (req, res) => {
  try {
    let data = await userModel.insertMany(req.body)
    res.status(201).send({
      code: 0,
      msg: 'ok',
      data
    })
  } catch (e) {
    // console.log(e)
    res.status(201).send({
      code: 1000,
      msg: '添加数据异常，可能用户名存在',
      data: {}
    })
  }
})


// 用户列表
app.get('/v1/api/users',async (req,res)=>{
  let page = req.query.page || 1
  let skip = (page -1) * 2
  let data = await userModel.find({},{},{skip,limit:2})

  res.send({
    code: 0,
    msg: 'ok',
    data
  })
})

// 根据用户id返回对应信息
app.get('/v1/api/users/:id',async (req,res)=>{

  let data = await userModel.findOne({_id:req.params.id})

  res.send({
    code: 0,
    msg: 'ok',
    data
  })
})


// 根据用户id返回对应信息
app.put('/v1/api/users/:id',async (req,res)=>{

  let data = await userModel.updateMany({_id:req.params.id},{$set:req.body})

  res.status(202).send({
    code: 0,
    msg: 'ok',
    data
  })
})


// 根据用户id删除数据
app.delete('/v1/api/users/:id',async (req,res)=>{
  let data = await userModel.deleteMany({_id:req.params.id})
  res.status(204).send({
    code: 0,
    msg: 'ok',
    data
  })
})